package com.atguigu.lease.web.admin.custom.converter;

import com.atguigu.lease.model.enums.ItemType;
import org.springframework.core.convert.converter.Converter;


/*
    实现String 1,2 和枚举类IterType类型转换
    实现步骤：
        1.实现Converter自定义参数类型转化key=value
        2.Converter<Source原类型,Target目标类型 > S => String(String s = getParameter("")  )
        3.实现类型转化方法
 */
public class StringToItemTypeConverter implements Converter<String, ItemType> {

    /**
     *
     * @param source 要转化的数据原值 1 ， 2
     * @return 转化的对应的枚举类型
     */
//    @Override
//    public ItemType convert(String source) {
//        if (source.equals("1")) return ItemType.APARTMENT;
//        if (source.equals("2")) return ItemType.ROOM;
//        throw new RuntimeException("数据类型错误，值必须是1/2");
//    }

    /**
     * 优雅写法
     */
    @Override
    public ItemType convert(String source) {
        //枚举对象.values() -> 获取美剧内部的具体对象类型集合
        for (ItemType itemType : ItemType.values()) {
            if (itemType.getCode() == Integer.parseInt(source)) {
                return itemType;
            }
        }
        throw new RuntimeException("数据类型错误，值必须是1/2");
    }

}
